CC= g++
INCLUDE= -I. -I/sw64/include
CFLAGS= $(INCLUDE) -g3 -O2 -fno-strict-aliasing -Wall
LIBS= -L/sw64/lib -lcfitsio -lm
BINDIR= .
ODIR= .odir

all : $(BINDIR)/corree $(BINDIR)/make_tests

$(BINDIR)/make_tests: make_tests.cpp
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/e3_m3: $(ODIR)/E3_M3.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corrnnna: $(ODIR)/CorrNNNa.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/correeea: $(ODIR)/CorrEEEa.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/correeeb: $(ODIR)/CorrEEEb.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corrneea: $(ODIR)/CorrNEEa.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corree: $(ODIR)/CorrEE.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o $(ODIR)/ConfigFile.o
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corrne: $(ODIR)/CorrNE.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o 
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corrnn: $(ODIR)/CorrNN.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o 
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corrnn3d: $(ODIR)/CorrNN3D.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o 
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corr_norm: $(ODIR)/Corr_Norm.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o 
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(BINDIR)/corree_multi: $(ODIR)/CorrEE_multi.o $(ODIR)/CorrIO.o $(ODIR)/CalcT.o 
	$(CC) $(CFLAGS) -o $@ $^ $(LIBS)

$(ODIR)/E3_M3.o: E3_M3.cpp CorrIO.h Corr.h Form.h
	$(CC) $(CFLAGS) -c E3_M3.cpp -o $@

$(ODIR)/CorrNNNa.o: CorrNNNa.cpp Cell.h CorrIO.h Corr.h Process3.h
	$(CC) $(CFLAGS) -c CorrNNNa.cpp -o $@

$(ODIR)/CorrEEEa.o: CorrEEEa.cpp Cell.h CorrIO.h Corr.h Process3.h
	$(CC) $(CFLAGS) -c CorrEEEa.cpp -o $@

$(ODIR)/CorrEEEb.o: CorrEEEb.cpp Cell.h CorrIO.h Corr.h PairCell.h Process2.h
	$(CC) $(CFLAGS) -c CorrEEEb.cpp -o $@

$(ODIR)/CorrEE.o: CorrEE.cpp Cell.h CorrIO.h Corr.h Corr2.h ConfigFile.h BinData2.h InputFile.h
	$(CC) $(CFLAGS) -c CorrEE.cpp -o $@

$(ODIR)/CorrNE.o: CorrNE.cpp Cell.h CorrIO.h Corr.h Process2.h
	$(CC) $(CFLAGS) -c CorrNE.cpp -o $@

$(ODIR)/CorrNN.o: CorrNN.cpp Cell.h CorrIO.h Corr.h Process2.h
	$(CC) $(CFLAGS) -c CorrNN.cpp -o $@

$(ODIR)/CorrNN3D.o: CorrNN3D.cpp Cell3D.h CorrIO.h Corr.h Process2.h
	$(CC) $(CFLAGS) -c CorrNN3D.cpp -o $@

$(ODIR)/Corr_Norm.o: Corr_Norm.cpp Cell.h CorrIO.h Corr.h Process2.h
	$(CC) $(CFLAGS) -c Corr_Norm.cpp -o $@

$(ODIR)/CorrEE_multi.o: CorrEE_multi.cpp Cell.h CorrIO.h Corr.h Process2.h
	$(CC) $(CFLAGS) -c CorrEE_multi.cpp -o $@

$(ODIR)/CorrIO.o: CorrIO.cpp Cell.h CorrIO.h Corr.h
	$(CC) $(CFLAGS) -c CorrIO.cpp -o $@

$(ODIR)/CalcT.o: CalcT.cpp CalcT.h
	$(CC) $(CFLAGS) -c CalcT.cpp -o $@

$(ODIR)/ConfigFile.o: ConfigFile.cpp ConfigFile.h
	$(CC) $(CFLAGS) -c ConfigFile.cpp -o $@
